﻿#ifndef __SS_NET_MSG_HEAD_H__
#define __SS_NET_MSG_HEAD_H__

#include "../ssBaseDefine.h"

#define MSG_HEADER_FLAG	0x20110908
#define MSG_HEADER_LEN	sizeof(StarSeeker::ssNetMsgHead)
#define MSG_BASIC_HEADER_LEN	sizeof(StarSeeker::ssNetMsgBasicHead)
#define MSG_MAX_SIZE	524288000//500mb

namespace StarSeeker
{

#pragma pack(1)

struct ssNetMsgBasicHead
{
	ssNetMsgBasicHead()
		: m_dwTcpFlag(MSG_HEADER_FLAG), m_dwLen(0)
	{
	}
	ssNetMsgBasicHead(u32 dwLen)
		: m_dwTcpFlag(MSG_HEADER_FLAG), m_dwLen(dwLen)
	{
	}

	u32		m_dwTcpFlag;	// 消息头标志
	u32		m_dwLen;		// 消息体长度，包括消息包头
	u32		m_dwMsgID;		// 消息编号
};

struct ssNetMsgHead
{
	ssNetMsgHead()
		: m_dwTcpFlag(MSG_HEADER_FLAG), m_dwLen(0)
	{
	}
	ssNetMsgHead(u32 dwType, u32 dwLen)
		: m_dwTcpFlag(MSG_HEADER_FLAG), m_dwLen(dwLen), m_dwMsgType(dwType)
	{
	}

	u32		m_dwTcpFlag;	// 消息头标志
	u32		m_dwLen;		// 消息体长度，包括消息包头
	u32		m_dwMsgID;		// 消息编号（请求方产生，响应方和通知类消息由server产生）
	u32		m_dwMsgType;	// 消息类型，可做serverID用
	u32		m_dwSessionID;	// 连接ID，网关使用
	u32		m_dwCheck;		// 效验码
};

#pragma pack()

}
#endif
